home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / A-COMAL Series / (k)aac.d64 / pascal-misshd3 < prev    next >
Text File  |  2007-02-28  |  3KB  |  153 lines

  1. (*PROGRAM  MISSHD3-11*)
  2. label 11,30,32,33;
  3. var VA,XT,ANL,VT,GAMT,ATAU,T3,DT,GC,RAD,PIE,XM,XI,ZM,ZT: real;
  4.     SIGT,SIGR,SIGRD,AKA,AKR,AKT,AKN,GAMMD,GAMM,AL,W,S: real;
  5.     RHO,CBAR,IY,CL,VS,VM,GAMTD,THDD,THD,THM,T,T2,T4: real;
  6.     TR,BTAU,DELMAX,DELS,DELTR,EP,E2P,D1EL,AM: real;
  7.     CDO,CDCL2,CMA,CMD,CMQ,CLAL,CLD,CD,QA,QS,ZL,D: real;
  8.     AMTHD,AMAL,AMDEL,VMD,ANM,GA,DELX,DELZ,RMT,A,B,DELT,ZD: real;
  9.     printer:text;
  10. begin
  11. rewrite(printer,4,15);
  12. VA:=1562.0;
  13. XT:=5000.0;
  14. ANL:=4.0;
  15. VT:=0.0;
  16. GAMT:=0.0;
  17. ATAU:=0.05;
  18. T3:=0.0;
  19. writeln(printer,'2D AIR-TO GROUND MISSILE SOLUTION -LINEAR- VER 5/10/84');
  20. writeln(printer);
  21. write(printer,'VA=',VA:5:0,' XT=',XT:6:0,' VT=',VT:4:0);
  22. write(printer,' GAMT',GAMT:5:0,' ATAU',ATAU:5:2);
  23. writeln(printer);
  24. writeln(printer);
  25. write(printer,'  T','  VM','    DELX','   DELZ');
  26. write(printer,'  SIGR','   GAMM','   THM','    AL');
  27. write(printer,'     GA','     DELS','    ANM','     ZD');
  28. writeln(printer);
  29. DT:=0.01;
  30. GC:=32.1739;
  31. RAD:=57.2958;
  32. PIE:=3.1415927;
  33. XM:=0.0;
  34. XI:=XT;
  35. ZM:=0.0;
  36. ZT:=500.0;
  37. SIGT:=arctan((ZM-ZT)/(XT-XM));
  38. SIGR:=0.0;
  39. SIGRD:=0.0;
  40. AKA:=-2.125;
  41. AKR:=5.0;
  42. AKT:=5.0;
  43. AKN:=AKT*ANL;
  44. GAMMD:=0.0;
  45. GAMM:=0.0;
  46. AL:=0.0;
  47. W:=48.3;
  48. S:=0.196;
  49. RHO:=2.3769E-03;
  50. CBAR:=0.5;
  51. IY:=1.6;
  52. CL:=0.0;
  53. VS:=1116.9;
  54. VM:=VA;
  55. GAMT:=GAMT/RAD;
  56. GAMTD:=0.0;
  57. THDD:=0.0;
  58. THD:=0.0;
  59. THM:=0.0;
  60. T:=0.0;
  61. T2:=0.1;
  62. T4:=T3;
  63. TR:=385.0;
  64. BTAU:=ATAU+DT;
  65. DELMAX:=0.087;
  66. DELS:=0.0;
  67. DELTR:=0.0097;
  68. EP:=0.0;
  69. E2P:=0.0;
  70. SIGRD:=0.0;
  71. (*ITERATIVE CALCULATION*)
  72. (*TRACKING LOOP*)
  73. repeat
  74. EP:=SIGT-SIGR;
  75. IF T<= (T4-DT) THEN goto 11;
  76. T4:=T4+T3;
  77. E2P:=EP;
  78. SIGRD:=AKR*AKT*E2P;
  79. IF SIGRD>=0.35 THEN SIGRD:=0.35;
  80. IF SIGRD<-0.35 THEN SIGRD:=-0.35;
  81. 11: SIGR:=SIGR+SIGRD*DT;
  82. D1EL:=E2P*AKR*(AKN/AKA)-DELTR;
  83. DELS:=(DELS*ATAU+D1EL*DT)/BTAU;
  84. IF DELS> DELMAX THEN DELS:=DELMAX;
  85. IF DELS< -DELMAX THEN DELS:=-DELMAX;
  86. (*AERODYNAMICS AND CONTROL*)
  87. AM:=VM/VS;
  88. CDO:=0.669;
  89. CDCL2:=0.045;
  90. CMA:=-3.85;
  91. CMD:=-3.52;
  92. CMQ:=-400.0;
  93. CLAL:=13.6;
  94. CLD:=3.15;
  95. CL:=AL*CLAL+DELS*CLD;
  96. CD:=CDO+CDCL2*CL*CL;
  97. QA:=0.5*RHO*VM*VM;
  98. QS:=QA*S;
  99. ZL:=QS*CL;
  100. D:=QS*CD;
  101. AMTHD:=QS*CBAR*CBAR*CMQ*THD/(2*VM);
  102. AMAL:=QS*CBAR*CMA*AL;
  103. AMDEL:=QS*CBAR*CMD*DELS;
  104. THDD:=(AMAL+AMDEL+AMTHD)/IY;
  105. THD:=THD+THDD*DT;
  106. THM:=THM+THD*DT;
  107. GAMMD:=((ZL/W)+(TR/W)*SIN(AL)-COS(GAMM))*GC/VM;
  108. GAMM:=GAMM+GAMMD*DT;
  109. VMD:=GC*((TR/W)*COS(AL)-D/W-SIN(GAMM));
  110. ANM:=VM*GAMMD/GC;
  111. VM:=VM+VMD*DT;
  112. AL:=THM-GAMM;
  113. GA:=SIGR-THM;
  114. IF GA>=0.35 THEN GA:=0.35;
  115. IF GA<-0.35 THEN GA:=-0.35;
  116. (*MISSILE-TARGET KINEMATICS*)
  117. XM:=XM+VM*COS(GAMM)*DT;
  118. ZM:=ZM-VM*SIN(GAMM)*DT;
  119. GAMM:=GAMM+GAMTD*DT;
  120. XT:=XT+VT*COS(GAMT)*DT;
  121. ZT:=ZT-VT*SIN(GAMT)*DT;
  122. DELX:=XT-XM;
  123. DELZ:=ZM-ZT;
  124. SIGT:=arctan(DELZ/DELX);
  125. IF DELX< 0.0 THEN SIGT:=(SIGT+PIE);
  126. RMT:=SQRT(DELX*DELX+DELZ*DELZ);
  127. T:=T+DT;
  128. (*ITERATIVE LOGIC AND PRINTOUTS*)
  129. IF RMT<= 30.0 then goto 30;
  130. IF T<=(T2-DT) then goto 32;
  131. 30:(*continue*)
  132. A:=VM*SIN(GAMM-SIGT)-VT*SIN(GAMT-SIGT);
  133. B:=VM*COS(GAMM-SIGT)-VT*COS(GAMT-SIGT);
  134. DELT:=RMT/B;
  135. ZD:=A*DELT;
  136. if ZD> 500.0 then ZD:= 500.0;
  137. writeln(printer);
  138. write(printer,T:5:2,VM:7:1,DELX:7:1);
  139. write(printer,DELZ:7:1,SIGR:6:3);
  140. write(printer,GAMM:6:3,THM:6:3);
  141. write(printer,AL:6:3,GA:6:3);
  142. write(printer,DELS:6:3,ANM:7:2,ZD:8:2);
  143. T2:=T2+0.1;
  144. 32:(*continue*)
  145. if T >=5.0 then goto 33
  146. until RMT<= 30.0;
  147. 33:(*continue*)
  148. writeln(printer);
  149. writeln(printer);
  150. writeln(printer,' ZD= ',ZD:7:3,'  DELT= ',DELT:7:3);
  151. writeln(' DONE');
  152. end.
  153.